package com.osdp.sc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.osdp.sc.entity.ScRoleUser;
import com.osdp.sc.vo.ScRoleUserVo;

import java.util.List;

/**
 * 用户角色关系管理
 */
public interface IScRoleUserService extends IService<ScRoleUser> {
    /**
     * 根据用户ID查询用户角色关系对象
     * @param userId String
     * @return List<UcUserRoleVo>
     */
    List<ScRoleUserVo> queryUserRoleByUserId(String userId);

    /**
     * 根据用户ID查询对应的角色id
     * @param userId
     * @return
     */
    List<String> queryRoleIdByUserId(String userId);

    /**
     * 批量保存修改用户与角色关系
     * @param userId String
     * @param roleIds List<String>
     * @return boolean
     */
    boolean batachSaveOrUpdateUserRoleByUserId(String userId, List<String> roleIds);

    /**
     * 根据用户ID删除用户与角色的关系
     * @param userId
     * @return boolean
     */
    boolean deleteByUserId(String userId);

    /**
     * 根据角色ID删除用户与角色的关系
     * @param roleId
     * @return
     */
    boolean deleteByRoleId(String roleId);

    /**
     * 根据角色ID查询用户角色信息
     * @param roleId
     * @return
     */
    List<ScRoleUserVo> queryUserRoleByRoleId(String roleId);
    /**
     * 根据角色ID和多个用户ID保存用户与角色关系
     * @param roleId
     * @param userIds
     * @return
     */
    boolean batachSaveOrUpdateUserRoleByRoleId(String roleId, List<String> userIds);

}
